<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="em0Fc" id="em0Fc"><span data-lake-id="ua5553674" id="ua5553674">典型回答</span></h1>
  <p data-lake-id="u47748dbb" id="u47748dbb"><br></p>
  <p data-lake-id="ucace406c" id="ucace406c"><span data-lake-id="u65f469e3" id="u65f469e3">1000瓶药水，1瓶有毒药，服用后一小时毒发，毒药可以无限稀释，那么一小时内最少用几只小白鼠一定能够找出毒药？</span></p>
  <p data-lake-id="ucb0f0729" id="ucb0f0729"><span data-lake-id="u118fe11d" id="u118fe11d">​</span><br></p>
  <p data-lake-id="u3367edf3" id="u3367edf3"><span data-lake-id="uf3308096" id="uf3308096">这个是一道典型的考察程序员对二进制理解的题目，我们简化一下，假如现在我们有4瓶药水。把瓶子标上号，1、2、3、4。</span></p>
  <p data-lake-id="u7c2c54e6" id="u7c2c54e6"><span data-lake-id="u84600aac" id="u84600aac">​</span><br></p>
  <p data-lake-id="u5b2ad5b7" id="u5b2ad5b7"><span data-lake-id="u87f2db0e" id="u87f2db0e">然后把1、3混合在一起喂给老鼠A吃，把23混合在一起，喂给老鼠B吃，如果A挂了，那么就是1有毒；如果B挂了，那么就是2有毒，如果A、B都挂了，那就是3有毒。如果AB都没死，那就是4有毒。</span></p>
  <p data-lake-id="u377b74b7" id="u377b74b7"><span data-lake-id="u1767e137" id="u1767e137">​</span><br></p>
  <p data-lake-id="ua4ae7b9c" id="ua4ae7b9c"><span data-lake-id="u2d26a272" id="u2d26a272">为啥要把13混在一起，23混在一起呢？其实就是二进制，2只老鼠，可以有以下四种组合：</span></p>
  <p data-lake-id="ua6249fee" id="ua6249fee"><span data-lake-id="u8e43256b" id="u8e43256b">​</span><br></p>
  <p data-lake-id="ua588b7b6" id="ua588b7b6"><span data-lake-id="u7428a447" id="u7428a447">0 0 ——&gt; 0</span></p>
  <p data-lake-id="uafe96869" id="uafe96869"><span data-lake-id="uc132b78c" id="uc132b78c">0 1 ——&gt; 1</span></p>
  <p data-lake-id="uf3122fc7" id="uf3122fc7"><span data-lake-id="u6dcf5b83" id="u6dcf5b83">1 0 ——&gt; 2</span></p>
  <p data-lake-id="ub7406e88" id="ub7406e88"><span data-lake-id="udc9b7165" id="udc9b7165">1 1 ——&gt; 3</span></p>
  <p data-lake-id="u06fd25a9" id="u06fd25a9"><br></p>
  <p data-lake-id="u35a26f77" id="u35a26f77"><span data-lake-id="u286e2e29" id="u286e2e29">所以，你懂了吧。。。</span></p>
  <p data-lake-id="ud03d19cb" id="ud03d19cb"><span data-lake-id="u6819a59c" id="u6819a59c">​</span><br></p>
  <p data-lake-id="u9014c112" id="u9014c112"><span data-lake-id="ub2d430a5" id="ub2d430a5">所以，如果8瓶药水，那么就是需要3只老鼠即可，因为2^3 = 8，如果是 16瓶药水，就需要4只老鼠。</span></p>
  <p data-lake-id="u23d90bd6" id="u23d90bd6"><span data-lake-id="u183e53b3" id="u183e53b3">​</span><br></p>
  <p data-lake-id="u347d753a" id="u347d753a"><span data-lake-id="u181d6239" id="u181d6239">所以，1000瓶药水，就需要</span><span data-lake-id="u7f0407b2" id="u7f0407b2">那么计算出来的结果就是9-10之间，所以需要10只老鼠可以检测出来。</span></p>
  <p data-lake-id="u4f0c58a8" id="u4f0c58a8"><br></p>
  <p data-lake-id="ud006e840" id="ud006e840"><span data-lake-id="u96fe5112" id="u96fe5112">​</span><br></p>
  <p data-lake-id="u4488dc96" id="u4488dc96"><span data-lake-id="u7c65ee1f" id="u7c65ee1f">​</span><br></p>
 </body>
</html>